Development Blog

ioncube Decoder

1.Cut first 0xE bytes
<?php //00337{0x0A}
if(!extension_loaded('ionCube Loader')){$__oc=strtolower(substr(php_uname(),0,3) );$__ln='/i

2. cmp with “<?php //0”
3. HeaderSize=Get Number 0x0337
3.1 seek to HeaderSize+Digits

4. Get First 4 Byte
4+oV5E3tizCOGmZa…
“4+oV”
while Cmp with
0xDEADC0DE, 0x3FBC2883, 0x882BC103, 0x0217582F, 0x149FEC13, 0x67A6BF45, 0x9EB67AC2
“0y4h”, “BrWN”, “4+oV”, “HR+c”, “mdgs”
loop next byte and counter< 0x40

6.Decode whole block with custim Base64 decoder
Speciality
Uses this Alphabet:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn opqrstuvwxyz+/=
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx yz0123456789+/
instead of ^this one, which is the standard for Base64
~Details start~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

‘=’ Terminatorsign
00 01 02 03 04 05 06 07 This Normal ACCI
$ ==> >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ……..
$+8 >FF FE FE FE FE FE FF FF ÿþþþþþÿÿ ……..
$+10 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ……..
$+18 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ……..
$+20 >FE FF FF FF FF FF FF FF þÿÿÿÿÿÿÿ !”#$%&’
$+28 >FF FF FF 3E FF FF FF 3F ÿÿÿ>ÿÿÿ? ()*+,-./
$+30 >00 01 02 03 04 05 06 07 . 01234567
$+38 >08 09 FF FF FF 40 FF FF .ÿÿÿ@ÿÿ 89:;<=>?
$+40 >FF 0A 0B 0C 0D 0E 0F 10 ÿ.
.. @ABCDEFG
$+48 >11 12 13 14 15 16 17 18  HIJKLMNO
$+50 >19 1A 1B 1C 1D 1E 1F 20  PQRSTUVW
$+58 >21 22 23 FF FF FF FF FF !”#ÿÿÿÿÿ XYZ[\]^_
$+60 >FF 24 25 26 27 28 29 2A ÿ$%&'()* `ABCDEFG
$+68 >2B 2C 2D 2E 2F 30 31 32 +,-./012 HIJKLMNO
$+70 >33 34 35 36 37 38 39 3A 3456789: PQRSTUVW
$+78 >3B 3C 3D FF FF FF FF FF ;<=ÿÿÿÿÿ XYZ{|}~�

$+80 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ CUEAAAAC
$+88 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ EEEIIIAA
$+90 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ EAAOOOUU
$+98 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ YOU$$$$$
$+A0 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ AIOUNN¦§
$+A8 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ?©ª«¬!””
$+B0 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ °±²³´µ¶·
$+B8 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ¸¹º»¼½¾¿
$+C0 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ÀÁÂÃÄÅÆÇ
$+C8 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ÈÉÊËÌÍÎÏ
$+D0 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ÐÑÒÓÔÕÖ×
$+D8 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ØÙÚÛÜÝÞß
$+E0 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ àSâãäåæç
$+E8 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ èéêëìíîï
$+F0 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ ðñòóôõö÷
$+F8 >FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿ øùúûüýþÿ

0123456789 =
ABCDEFGHIJKLMNOPQRSTUVWXYZ A-10
abcdefghijklmnopqrstuvwxyz a-36
+/
10+26+26+2 = 64

8 = 2*2*2
6 = 2 *3
————
2*2*2*3 =24

8 * >3< =24
6 * >4< =24

l<->r

1. (a<<2)
11. ^^^^ or (b>>4)

2. (b<<4)
22. ^^^^ or (c>>2)

3. (c<<6)
33. ^^^^ or d

(a<<2) | (b>>4);
(((b&15)<<4) | (c>>2));
((c&3)<<6) | (d));

~Details end~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

7. Xor Decode value with Xor 0x2853CEF2
Example
0x149FEC13 ‘Xor 0x2853CEF2’ => 0x3CCC22E1
myvalA myvalAA

if myvalAA < 0x17EFE671
Select myvalAA
case 2A4496DD: <v11>
case 3CCC22E1; <v22>
case 4FF571B7; <v2>
end select

elseif myvalAA = 0x17EFE671
elseif myvalAA =A0780FF1 <v1>
elseif myvalAA =B6E5B430 <v2>
elseif myvalAA =F6FE0E2C <v3>

—————————
Dec_Level1
10017190 >/$ A1 B0BB0210 MOV EAX, [<DecInit>]

10027C60 10025E19 ^ ASCII “this”

10027DEC 1002A2AD *¢ ASCII “error_log”
10027DF0 10025BBD ½[ ASCII “error_reporting”
10027DF4 1002A299 ™¢ ASCII “escapeshellarg”

—————–
FileLen 98762 -> 181CA
Base64 97897 -> 17E69
Enc 73422 -> 11ECE

$ ==> 0>149FEC13 ìŸ Ver
$+4 0>B86519DE Þe¸ ??? crc Size+1a
$+8 0>B05CB7CB Ë·\° Size
$+C 0>9BF1DB96 –Ûñ› Key
$+10 0>FEC96A4E NjÉþ
$+14 0>AC587F33 3�X¬
$+18 0>A78E2FAE ®/Ž§
$+1C 0>799A BC 94 ”¼šy size chunk
$+20 0>6A079C77 wœj
$+24 0>9EC709A7 §.Çž
$+28 0>2349601A `I#
$+2C 0>F2412103 !Aò
$ ==> 0>9C77799A šywœ
$+4 0>09A76A07 j§.
$+8 0>601A9EC7 Çž`
$+C 0>21032349 I#!
$+10 0>2F40F241 Aò@/
$+14 0>9725C69E žÆ%—
$+18 0>604017C2 Â@`
$+1C 0>858C05D8 ØŒ…
$+20 0>1DB16FAA ªo±
$+24 0>73CEA700 .§Îs
$+28 0>9002E7C8 Èç�
$+2C 0>31C1EEE2 âîÁ1
$+30 0>ACF66D69 imö¬
$+34 0>26FA032C ,ú&
$+38 0>F1368BBA º‹6ñ
$+3C 0>AB722B48 H+r«
$+40 0>7CBA5F90 �_º| SHELL32.7CBA5F90
$+44 0>B9C74383 ƒCǹ
$+48 0>178FBA2E .º�
$+4C 0>DBA60B76 v
¦Û
$+50 0>D8A5CC4C LÌ¥Ø
$+54 0>066E6190 �an
$+58 0>C871DE25 %ÞqÈ
$+5C 0>3F13EBE5 åë?
$+60 0>202A2726 &’*
$+64 0>F59A0216 šõ
$+68 0>1952B711 ·R
$+6C 0>9986822D -‚†™
$+70 0>CEA88F23 #�¨Î
$+74 0>22926C19 l’”
$+78 0>C9448619 †DÉ
$+7C 0>4EC7F171 qñÇN
$+80 0>01FE5439 9Tþ
$+84 0>904AA423 #¤J�
$+88 0>CC0A1EB9 ¹.Ì
$+8C 0>E87CEE23 #î|è
$+90 0>64BA8FE0 à�ºd
$+94 0>AC7D93C3 Ã“}¬
$+98 0>26923606 6’&
$+9C 0>3FAD9F51 QŸ*?
$+A0 0>473BB68F �¶;G
$+A4 0>F6A68F36 6�¦ö
$+A8 0>D26333BE ¾3cÒ
$+AC 0>2D0A6BDD Ýk.- B1
$+B0 0>F8986947 Gi˜ø B1
$+B4 0>C3C9ED2B +íÉàB1
$+B8 0>CAC53077 w0ÅÊ B1
$+BC 0>E00D67E3 ãg.à

$+C0 0>D3743529 )5tÓ
$+C4 0>0FD971EB ëqÙ

01234567
012 34567 >> 5
34567 << 3

rol 3 <<
ror 5 >>

Begin
00009BF1 0
00000469 4
00005884 8
0000F789 c

9BF10469 2616263785 0469 9BF1 -> 74030065
New E524 3E56 -> 3844357718

5884 F789-> 1485109129

7789 5884 ->2005489796

675E15FB

0000CFA8
000016D6
0000BF4B 026c
BF4B16D6 ->3209369302

end

3826132074 E40E 246A

640E 246A

1678648426 640E246A

9BF1DB96 2616318870

4294967296# ‘0x100000000

// a = KeYasak kelime[i]
// a = ((KeYasak kelime[i+1] xor a) And 0x7FFFFFFF) xor a

a = KeYasak kelime[i+1] xor 0x80000000
KeYasak kelime[i] = Matrix[a and 1] xor
KeYasak kelime[i+18D] Xor
(a shr 1)

d a
0 0 0
0 1 0
1 0 1
1 1 1

A= (d And 0x80000000) or (a And 0x7FFFFFFF)

A = ((d xor a) And 0x7FFFFFFF) xor a

Compression
Command=0
:loop
Case Command
case 0

Get Byte from Data
Bits
76543210

Cut 210
EdX= Bit0

Select Bits_21
Case 00
case 01
76543 [cut 210] (>> 3)
43210
Command=6
goto loop

case 10
case 11

case 6
78 9c

7 8
^-Methode 8=Z_DEFLATED ->”unknown compression method”

7 8
^-7 + 8 = 11? ->”invalid window size”

———-
789c % 31 ==0 ? Else “incorrect header check”

9c and (0010 0000) PRESET_DICT

z->state->mode = BLOCKS;

MAX_WBITS=-15;DEBUG;verbose=2

Comments on: "ioncube Decoder" (5)

  1. Oh My God
    May the Force Be with You~

  2. […] Excerpt from: ioncude Decoder « H7labs […]

  3. can you send me an email with an example? I’ll be more than gratefull

  4. Can you post a working decoder please!!!

  5. could u install any demo for this decoder?

Leave a comment